package com.otod.sys.emp.service;

import java.util.List;
import java.util.Map;

import com.otod.base.exception.AppException;
import com.otod.commons.entity.Page;
import com.otod.sys.vo.AuapREmpOrgRoleVo;
import com.otod.sys.vo.AuapTEmpDetailVo;
import com.otod.sys.vo.AuapTEmpVo;

/**
 * 员工信息管理
 * @author jqiu
 */
public interface IEmpService{
	/**
	 * 添加员工信息
	 * 
	 * @param empBusBO
	 */
	public void addEmployeeBus(AuapTEmpVo auapTEmpVo, String empRolesIds,
			AuapTEmpDetailVo empDetail) throws Exception;
	
	/**
	 * 查询员工信息
	 * 
	 * @param empNo
	 */
	public AuapTEmpVo findByEmpNo(String empNo);

	/**
	 * 添加员工基本信息
	 * 
	 * @param AuapTEmpVo
	 */
	public void addEmployee(AuapTEmpVo AuapTEmpVo,String empRolesIds) throws Exception;
	

	/**
	 * 修改员工信息
	 * @param empBusBO
	 * @throws Exception
	 */
	public void editEmployeeBus(AuapTEmpVo auapTEmpVo, String empRolesIds,
			AuapTEmpDetailVo empDetail) throws Exception;
	
	/**
	 * 通过员工ID查询员工信息
	 * @param 员工ID
	 * @return
	 */
	public AuapTEmpVo getById(String id);
	
	/**
	 * 分页查询员工信息列表
	 * @param page	分页信息
	 * @param param	参数
	 * @return	分页信息和结果数据
	 */
	public Page queryForList(Page page,Map<String,Object> param);
	/**
	 * 条件查询
	 * @param param	参数
	 * @return	结果数据
	 */
	public List<AuapTEmpVo> queryForList(Map<String,Object> param);
	
	/**
	 * 查询员工信息列表
	 * @param param	参数
	 * @return	结果数据list
	 */
	public List<AuapTEmpVo> findAll();
	
	/**
	 * 查询员工角色列表
	 * @param empId
	 * @return	结果数据String
	 */
	public String findByEmpId(String empId);
	/**
	 * 通过empNo查询角色
	 * @param empNo
	 * @return
	 */
	public List<AuapREmpOrgRoleVo> queryForListEmpNo(String empNo);
	/**
	 * 修改手机号码
	 * @param telphone
	 */
	public void updateEmpTelphone(String telphone,String empId);
	/**
	 * 添加手机号码
	 * @param telphone
	 * @throws Exception 
	 */
	public void addEmpTelphone(AuapTEmpDetailVo auapTEmpDetailVo) throws Exception;
	/**
	 * 修改密码
	 * @param empNo 员工编号
	 * @param passWord 新密码
	 */
	public void updateEmpPassWord(String empNo,String passWord);
	
	/**
	 * 修改密码
	 * @param uuid 员工id
	 * @param passWord 新密码
	 */
	public void updateEmpNoPassWord(String uuid,String passWord);
	
	/**
	 * 删除员工信息
	 * @param empId
	 * @throws AppException 
	 */
	public void deleteByEmpId(String empId) throws AppException;
	
	
	public List<AuapREmpOrgRoleVo> queryForListRoleName(String empId);
	
	public AuapTEmpVo getByEmpNoAndStatus(Map<String,Object> param);
	
	
}
